﻿using Shop.Api.Models;
using Shop.Data.Business;
using Shop.Data.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;

namespace Shop.Api.Controllers
{
    public class UsuarioController : ApiController
    {
        // GET api/<controller>
        public IEnumerable<UsuarioModel> Get()
        {
             return UsuarioBusiness.GetListByFilter("").Select(
             t => new UsuarioModel
             {
                 Id = t.Id,
                 login = t.login,
                 password = t.password,
                 nombre = t.nombre,
                 rol = t.rol,
            });
        }

        // GET api/<controller>/5
        public UsuarioModel Get(Guid id)
        {
            Usuario u = UsuarioBusiness.GetById(id);
            return new UsuarioModel
            {
                Id = u.Id,
                login = u.login,
                password=u.password,
                nombre = u.nombre,
                rol = u.rol,
            };
        }

        // POST api/<controller>
        public UsuarioModel Post([FromBody]UsuarioModel model)
        {
            Usuario u = UsuarioBusiness.Create(new Usuario
            {

                login = model.login,
                password = model.password,
                nombre = model.nombre,
                rol = model.rol,


            });
            return new UsuarioModel{

                Id = u.Id,
                login = u.login,
                password=u.password,
                nombre = u.nombre,
                rol = u.rol,
            
            
            };
        }

        // PUT api/<controller>/5
        public UsuarioModel Put(Guid id, [FromBody]UsuarioModel model)
        {
            Usuario u = UsuarioBusiness.Update(new Usuario
            {
                Id=id,
                login = model.login,
                password = model.password,
                nombre = model.nombre,
                rol = model.rol,

            });
            return new UsuarioModel
            {
                Id = u.Id,
                login = u.login,
                password = u.password,
                nombre = u.nombre,
                rol = u.rol,
            


            };

        }

        // DELETE api/<controller>/5
        public void Delete(Guid id)
        {
            UsuarioBusiness.Delete(id);
        }
    }
}